package com.chushouya.manager.service.common;

import com.chushouya.manager.dao.entity.BonusUserEntity;
import java.math.BigDecimal;

/**
 * 红包核销服务接口
 * 
 * @author chushouya
 * @date 2025-08-13
 */
public interface BonusVerificationService {
    
    /**
     * 核销红包
     * 
     * @param orderId 订单ID
     * @param userId 用户ID
     * @return 核销成功的红包金额
     */
    BigDecimal verifyBonus(Long orderId, Long userId, Long bonusId,BigDecimal bonusPrice, BigDecimal evaluatePrice);
    
    /**
     * 根据券码查询可用红包
     * 
     * @param userId 用户ID
     * @return 红包信息
     */
    BonusUserEntity findAvailableBonus(Long bonusId, Long userId);
    
    /**
     * 检查红包是否可用
     * 
     * @param bonus 红包信息
     * @param orderAmount 订单金额
     * @return 是否可用
     */
    boolean isBonusAvailable(BonusUserEntity bonus, BigDecimal orderAmount);
    
    /**
     * 标记红包为已使用
     * 
     * @param bonusId 红包ID
     * @param orderId 订单ID
     */
    void markBonusAsUsed(Long bonusId, Long orderId);
}
